6 research outputs found

    Network analysis of large scale object oriented software systems

    Get PDF
    PhD ThesisThe evolution of software engineering knowledge, technology, tools, and practices has seen progressive adoption of new design paradigms. Currently, the predominant design paradigm is object oriented design. Despite the advocated and demonstrated benefits of object oriented design, there are known limitations of static software analysis techniques for object oriented systems, and there are many current and legacy object oriented software systems that are difficult to maintain using the existing reverse engineering techniques and tools. Consequently, there is renewed interest in dynamic analysis of object oriented systems, and the emergence of large and highly interconnected systems has fuelled research into the development of new scalable techniques and tools to aid program comprehension and software testing. In dynamic analysis, a key research problem is efficient interpretation and analysis of large volumes of precise program execution data to facilitate efficient handling of software engineering tasks. Some of the techniques, employed to improve the efficiency of analysis, are inspired by empirical approaches developed in other fields of science and engineering that face comparable data analysis challenges. This research is focused on application of empirical network analysis measures to dynamic analysis data of object oriented software. The premise of this research is that the methods that contribute significantly to the object collaboration network's structural integrity are also important for delivery of the software system’s function. This thesis makes two key contributions. First, a definition is proposed for the concept of the functional importance of methods of object oriented software. Second, the thesis proposes and validates a conceptual link between object collaboration networks and the properties of a network model with power law connectivity distribution. Results from empirical software engineering experiments on JHotdraw and Google Chrome are presented. The results indicate that five considered standard centrality based network measures can be used to predict functionally important methods with a significant level of accuracy. The search for functional importance of software elements is an essential starting point for program comprehension and software testing activities. The proposed definition and application of network analysis has the potential to improve the efficiency of post release phase software engineering activities by facilitating rapid identification of potentially functionally important methods in object oriented software. These results, with some refinement, could be used to perform change impact prediction and a host of other potentially beneficial applications to improve software engineering techniques

    Dynamic network analysis of software systems

    No full text
    It is difficult to analyse large-scale integrated software systems with the purpose of improving their dependability and functionality through maintenance and evolution. Such systems contain many interactions between their components and can be represented as complex interaction networks similar to complex biological and socio-technical systems. Here we combine dynamic analysis and network analysis methods with the aim to determine and validate components of high functional importance in software systems. We use as a test case the JHotDraw 6.01b software and predict the method calls with high functional importance using network analysis methods. We validate the predictions by disabling the methods predicted to have high functional importance and evaluating the behaviour of the software following this. Our results show that network analysis methods are relatively good in predicting method calls of high functional importance. Such analysis can predict vulnerabilities or critical components of software systems and can be used to predict patching or updating needs of software systems

    Validation of Network Analysis Methods Applied in the Context of Dynamic Analysis of Software Systems

    No full text
    Evolution of large-scale software systems generates very complex systems. The combination of network analysis with dynamic analysis provides a promising approach to understand such systems and support their maintenance and evolution. However, an important issue is the validity of network analysis based predictions about the functional importance of system components. Here we analyse dynamic analysis data generated for the JHotDraw 6.01b software system using network analysis methods. We show that network analysis based metrics can identify functionally important components (methods of classes) of the software system. However, we also show that some network metrics perform better than others. We show that combinations of network metrics may lead to improved performance in predicting functionally important software components, but this is again not always the case. Our results confirm the usefulness of network analysis methods in the context of dynamic analysis of software, and also underline the importance of proper validation of these methods

    Validation of Network Analysis Methods Applied in the Context of Dynamic Analysis of Software Systems

    Get PDF
    Evolution of large-scale software systems generates very complex systems. The combination of network analysis with dynamic analysis provides a promising approach to understand such systems and support their maintenance and evolution. However, an important issue is the validity of network analysis based predictions about the functional importance of system components. Here we analyse dynamic analysis data generated for the JHotDraw 6.01b software system using network analysis methods. We show that network analysis based metrics can identify functionally important components (methods of classes) of the software system. However, we also show that some network metrics perform better than others. We show that combinations of network metrics may lead to improved performance in predicting functionally important software components, but this is again not always the case. Our results confirm the usefulness of network analysis methods in the context of dynamic analysis of software, and also underline the importance of proper validation of these methods

    Dynamic network analysis of software systems

    Get PDF
    It is difficult to analyse large-scale integrated software systems with the purpose of improving their dependability and functionality through maintenance and evolution. Such systems contain many interactions between their components and can be represented as complex interaction networks similar to complex biological and socio-technical systems. Here we combine dynamic analysis and network analysis methods with the aim to determine and validate components of high functional importance in software systems. We use as a test case the JHotDraw 6.01b software and predict the method calls with high functional importance using network analysis methods. We validate the predictions by disabling the methods predicted to have high functional importance and evaluating the behaviour of the software following this. Our results show that network analysis methods are relatively good in predicting method calls of high functional importance. Such analysis can predict vulnerabilities or critical components of software systems and can be used to predict patching or updating needs of software systems
    corecore